gusucode.com > 《MATLAB图像与视频处理实用案例详解》代码 > 《MATLAB图像与视频处理实用案例详解》代码/第 05 章 基于阈值分割的车牌定位识别/Pattern_Recognition.m

    function str = Pattern_Recognition(words)

pattern = [];
dirpath = fullfile(pwd, '标准库/*.bmp');
files = ls(dirpath);
for t = 1 : length(files)
    filenamet = fullfile(pwd, '标准库', files(t,:));
    [~, name, ~] = fileparts(filenamet);
    imagedata = imread(filenamet);
    imagedata = im2bw(imagedata, 0.5);
    pattern(t).feature = imagedata;
    pattern(t).name = name;
end

distance = [];
for m = 1 : 7;
    for n = 1 : length(files);
        switch m
            case 1
                distance(n)=sum(sum(abs(words.word1-pattern(n).feature)));
            case 2
                distance(n)=sum(sum(abs(words.word2-pattern(n).feature)));
            case 3
                distance(n)=sum(sum(abs(words.word3-pattern(n).feature)));
            case 4
                distance(n)=sum(sum(abs(words.word4-pattern(n).feature)));
            case 5
                distance(n)=sum(sum(abs(words.word5-pattern(n).feature)));
            case 6
                distance(n)=sum(sum(abs(words.word6-pattern(n).feature)));
            case 7
                distance(n)=sum(sum(abs(words.word7-pattern(n).feature)));
        end
    end
    [yvalue,xnumber]=min(distance);
    filename = files(xnumber, :);
    [pathstr, name, ext] = fileparts(filename);
    result(m) = name;
end
str = ['识别结果为:' result];
msgbox(str, '车牌识别', 'modal');
str = result;